package com.sky.loveshop.entity.aliPay;

import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author xcy
 * @version V1.0
 * @description
 * @date 2024/9/1 13:07
 */
@Data
public class NotifyMessage {
    /**
     * 通知的发送时间。格式为 yyyy-MM-dd HH:mm:ss。必传
     */
    private Date notify_time;

    /**
     * 通知的类型。必传
     */
    private String notify_type;

    /**
     * 通知校验 ID。必传
     */
    private String notify_id;

    /**
     * 支付宝分配给开发者的应用 ID。必传
     */
    private String app_id;

    /**
     * 编码格式，如 utf-8、gbk、gb2312 等。 必传
     */
    private String charset;

    /**
     * 调用的接口版本，固定为：1.0。必传
     */
    private String version;

    /**
     * 商家生成签名字符串所使用的签名算法类型，目前支持 RSA2 和 RSA，推荐使用 RSA2。必传
     */
    private String sign_type;

    /**
     * 签名。详情可查看 异步返回结果的验签。 必传
     */
    private String sign;

    /**
     * 支付宝交易凭证号。必传
     */
    private String trade_no;

    /**
     * 原支付请求的商户订单号。 必传
     */
    private String out_trade_no;

    /**
     * 商户业务 ID，主要是退款通知中返回退款申请的流水号。 非必传
     */
    private String out_biz_no;

    /**
     * 买家支付宝用户号。买家支付宝账号对应的支付宝唯一用户号。非必传
     */
    private String buyer_id;

    /**
     * 买家支付宝账号。非必传
     */
    private String buyer_logon_id;

    /**
     * 卖家支付宝用户号。非必传
     */
    private String seller_id;

    /**
     * 卖家支付宝账号。非必传
     */
    private String seller_email;

    /**
     * 交易目前所处的状态。详情可查看 交易状态说明。非必传
     * <p>
     * WAIT_BUYER_PAY 交易创建，等待买家付款。
     * TRADE_CLOSED   未付款交易超时关闭，或支付完成后全额退款。
     * TRADE_SUCCESS  交易支付成功。
     * TRADE_FINISHED 交易结束，不可退款。
     */
    private String trade_status;

    /**
     * 本次交易支付的订单金额，单位为人民币（元）。非必传
     */
    private BigDecimal total_amount;

    /**
     * 商家在收益中实际收到的款项，单位人民币（元）。非必传
     */
    private BigDecimal receipt_amount;

    /**
     * 用户在交易中支付的可开发票的金额。非必传
     */
    private BigDecimal invoice_amount;

    /**
     * 用户在交易中支付的金额。非必传
     */
    private BigDecimal buyer_pay_amount;

    /**
     * 使用集分宝支付的金额。非必传
     */
    private BigDecimal point_amount;

    /**
     * 退款通知中，返回总退款金额，单位为人民币（元），支持两位小数。非必传
     */
    private BigDecimal refund_fee;

    /**
     * 商品的标题/交易标题/订单标题/订单关键字等，是请求时对应的参数，原样通知回来。非必传
     */
    private String subject;

    /**
     * 订单的备注、描述、明细等。对应请求时的 body 参数，原样通知回来。非必传
     */
    private String body;

    /**
     * 该笔交易创建的时间。格式为 yyyy-MM-dd HH:mm:ss。非必传
     */
    private Date gmt_create;

    /**
     * 该笔交易 的买家付款时间。格式为 yyyy-MM-dd HH:mm:ss。非必传
     */
    private Date gmt_payment;

    /**
     * 该笔交易的退款时间。格式为 yyyy-MM-dd HH:mm:ss.S。非必传
     */
    private Date gmt_refund;

    /**
     * 该笔交易结束时间。格式为 yyyy-MM-dd HH:mm:ss。非必传
     */
    private Date gmt_close;

    /**
     * 支付成功的各个渠道金额信息。详情可查看 资金明细信息说明。非必传
     */
    private String fund_bill_list;

    /**
     * 公共回传参数，如果请求时传递了该参数，则返回给商家时会在异步通知时将该参数原样返回。本参数必须进行 UrlEncode 之后才可以发送给支付宝。非必传
     */
    private String passback_params;

    /**
     * 本交易支付时所有优惠券信息，详情可查看 优惠券信息说明。非必传
     */
    private String voucher_detail_list;

}
